/*
 * Created on 2007-11-18
 *
 * TODO
 */
package jacky.lanlan.song.aop.advice;

import java.lang.reflect.Method;

import org.aopalliance.aop.Advice;

/**
 * 类似于AspectJ的 AroundAdvice，由客户端决定目标方法的调用及其返回值。
 * 
 * @author Jacky.Song
 */
public interface AroundAdvice extends Advice {
	
	/**
	 * 处理方法调用逻辑。
	 * 
	 * @param target
	 *          调用方法的对象
	 * @param method
	 *          被调用的方法
	 * @param args
	 *          方法参数
	 * @return 方法调用后的返回值
	 * @throws Exception
	 *           如果在处理方法调用的时候出错
	 */
	Object process(Object target,Method method,Object... args) throws Exception;
	
}
